1. Field of the Invention
This invention relates to modems, and in particular to systems and methods for detecting call-waiting tones during modem connection.
2. Description of the Related Art
Modems are communications devices which employ digital modulation techniques to transmit binary data over analog communications channels, e.g., telephone lines. Typically, two modems communicate over a single channel, with one modem at each end of the channel. Signal processing structures implemented at each modem provide encoding, modulation, filtering, interpolation, echo cancellation, signal detection, equalization, demodulation, and decoding functions. Modems typically conform to international standards to ensure interoperability with modems from other manufacturers. One such standard is the V.34 specification described in ITU-T Recommendation V.34, A Modem Operating at Data Signalling Rates of up to 28 800 bits/s for Use on the General Switched Telephone Network and on Leased Point-to-Point 2-Wire Telephone-Type Circuits, dated September, 1994 (previously CCITT Recommendation V.34), which is hereby incorporated herein, in its entirety, by reference.
Traditional modem implementations include one or more dedicated digital signal processors (or DSPs) on which signal processing algorithms execute during periods of modem operation. A computer system may incorporate such a modem implementation, and in addition, typically includes application and operating system software executable on a general purpose processor. Software executing on the general purpose processor sends and receives data via the modem implementation using input/output (I/O) ports, direct memory access (DMA), or other I/O structures and methods suitable for a particular general purpose processor and operating system combination.
Since a typical modem implementation includes a dedicated DSP not shared with other signal processing functions of a larger computer system, the modem""s DSP and the signal processing algorithms designed to run thereon are selected and designed to meet the peak computation load of the modem. DSP cycles are either used or lost. For this reason, signal processing algorithms implementing the complete steady-state functionality of modem transmit and receive paths are typically executed on a DSP at full speed for the duration of a modem connection.
For many portable device applications such as Personal Digital Assistants (PDAs), portable computers, and cellular phones, power consumption, battery life, and overall mass are important design figures of merit. In addition, very small part counts are desirable for extremely-small, low-cost consumer devices. Modem communications are desirable in many such portable device applications. However, traditional DSP implementations of the underlying signal processing capabilities create substantial power demands, require increased part counts, and because of the power consumption of a discrete DSP, typically require larger heavier batteries.
A modem implemented as software executable on a general purpose computer may reduce part count, power demands, and overall size and mass of a computer system by eliminating the DSP, its power consumption, and some of the battery capacity otherwise required. Even non-portable device applications such as set top boxes (e.g., WebTV(trademark) internet terminal devices or satellite/pay TV authorization devices), fax machines, etc. may benefit from the reduced part count, low cost, and reduced size and mass benefits of a software modem.
Many of these devices, whether or not portable, will be connected to the public switched telephone network on a single telephone line shared for voice communications. Such a configuration, which is typical in a residential service setting, may tie up the single phone line for extended- periods of time during which the modem is communicating over the line. During such time, incoming callers may receive a busy signal.
A call waiting feature offered by many local exchange carriers alerts a person using a telephone for conventional voice communication that a third party is attempting to call the user while the user is still making a call. In such a system, the called party is notified and has the option to interrupt the ongoing call to take the waiting call. Typically, the local exchange carrier provides the call waiting feature by providing a call waiting tone of 440 Hz on the telephone line. The user typically hears the tone and may accept the waiting call by depressing, or xe2x80x9cflashingxe2x80x9d the switch hook.
Features such as the call waiting feature, while convenient, present problems when the initial call includes a modem data communications session. For example, when a modem is used, the call waiting signal is typically not recognized by the modem because the modem is not adapted to recognize the call waiting signal during data communications. As a result, xe2x80x9cwaiting callsxe2x80x9d may go unanswered. This is particularly problematic in single-line residential settings where a phone subscriber may miss incoming calls when, for example, an internet terminal device is downloading data associated with a universal resource locator (URL) or a satellitelpay TV authorization device is using the phone line to trasact a pay-per-view charge. Additionally, the call waiting signal can disrupt the modem communications session and cause its premature termination.
A prior art method of call waiting signal detection for a modem is disclosed in U.S. Pat No. 4,852,151, issued Jul. 25, 1989, and entitled MODEM WITH CALL WAITING. The disclosed modem includes a data mode filter that is adapted to detect the presence of the carrier signal during the data transfer operation of the modem (i.e., the data mode), and a call progress management filter to detect incoming signals during the modem""s call connection operation (i.e., the call progress mode.) The call waiting signal is typically not within the bandwidth of the data mode filter, but the call waiting signal is typically within the bandwidth of the call progress management filter. The method disclosed in the ""151 patent switches the data mode filter to the call progress management filter once the data mode filter detects a loss of the carrier signal. If the call progress management filter then detects energy in its bandwidth, the call waiting signal has been detected.
Another prior art method of call waiting signal detection for a modem is disclosed in U.S. Pat No. 5,287,401, issued Feb. 15, 1994, and entitled APPARATUS AND METHOD FOR A MODEM FOR DETECTING A CALL WAITING SIGNAL. The disclosed modem detects a cadence of carrier loss, carrier re-detect, carrier loss that is characteristic of local exchange carrier supply of call waiting tones. If the characteristic carrier loss/carrier detect cadence is detected, then the modem switches to its call progress management (CPM) filter. If the CPM filter then detects energy in its bandwidth, the call waiting signal has been detected.
Unfortunately, carrier loss can and does occur for reasons other than supply of call waiting tones. For example, carrier can be temporarily lost due to telephone line transmission problems. If the data mode filters are switched off because of a carrier loss or a cadence not generated by a call waiting tone, subsequent data in a returning carrier signal would not be detected. Furthermore, each of the above prior-art methods relies on energy detected in the CPM filter band and is not specific to the 440 Hz call waiting tone. Thus, noise in the CPM filter band may trigger an errant call waiting detection.
Another method of call waiting signal detection for a modem has been employed in at least some versions of WebTV(trademark) set top boxes. The method, referred to as xe2x80x9cLineSharexe2x80x9d in WebTV(trademark) documentation is to monitor the signal-to-noise-ratio (SNR) of a modem connection, and when the SNR drops significantly for a period of time, a call-waiting tone is assumed to have caused the reduced SNR. Unfortunately, many other conditions can cause reduced SNR, so call-waiting tone detection may be unreliable.
It has been discovered that reliable detection of a call-waiting tone can be provided by employing a correlation based technique disclosed herein. A modem employing such a technique need not rely on carrier drop detection and is generally insensitive to other energy or noise on the line.
In one embodiment in accordance with the present invention, a method of detecting a call-waiting tone in a signal includes sampling the signal to form a first sequence including signal samples, cross-correlating the first sequence with a second sequence to form a first cross-correlation value, and cross-correlating the first sequence with a third sequence to form a second cross-correlation value. The second sequence is derived from the first sequence and is temporally displaced by a first lag therefrom. The third sequence is derived from the first sequence and is temporally displaced by a second lag therefrom. A call-waiting tone is identified in the signal by comparing the first cross-correlation value with a first threshold percentage of a signal power value for the first sequence and by comparing the second cross-correlation value with a second threshold percentage of the signal power value. First and second threshold percentages may be the same or different percentages.
In another embodiment in accordance with the present invention, an apparatus includes a signal sampler and a call-waiting tone detector. The signal sampler is coupled to receive a signal from a communications medium and to form a sampled sequence of values corresponding to the signal. The call-waiting tone detector is coupled to operate on a stored representation of a first sequence corresponding to the sampled sequence, and includes a first correlator, a second correlator, a third correlator and decision logic responsive to the first, the second, and the third correlators. The first correlator has access to the stored representation to calculate a power value of the signal. The second correlator has access to the stored representation to cross-correlate the stored representation with a first temporal displacement thereof to produce a first cross-correlation value. The third correlator has access to the stored representation to cross-correlate the stored representation with a second temporal displacement thereof to produce a second cross-correlation value. The decision logic signals detection of a call-waiting tone if the power value exceeds a threshold power level, the first cross-correlation value exceeds a first threshold percentage of the power value, and the additive inverse of the second cross-correlation value exceeds a second threshold percentage of the power value. The first and second temporal displacements are each by integer numbers of samples, the first temporal displacement corresponds to an integer multiple of the period of a call-waiting tone, and the second temporal displacement corresponds to a half-integer multiple of the period of the call-waiting tone.